package mathive.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface UserServiceAsync {
	void loginToServer(String username, String password, AsyncCallback<String> callback);
	void getUser(String session, AsyncCallback<ClientUser> callback);
	void logoutFromServer(String session, AsyncCallback<Boolean> callback);
	void registerOnServer(String username, String password, String email, AsyncCallback<Boolean> callback);
	void isOnline(String session, AsyncCallback<Boolean> callback);
	void resetPassword(String email, AsyncCallback<Boolean> callback);
	void ChangePassword(String session, String oldPassword, String newPassword, AsyncCallback<Boolean> callback);
	void addScore(String session, int score, AsyncCallback<Boolean> callback);
	void getAllUsers(AsyncCallback<String[]> callback);
	void deleteUser(String session, String username, AsyncCallback<Boolean> callback);
	void AdminChangePassword(String session, String username, String newPassword, AsyncCallback<Boolean> callback);
	void changeUserType(String session, String username, int type, AsyncCallback<Boolean> callback);
}